100 GOTO 150 :: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,BA,CA,DA,EA,FA,GA,HA,IA,JA,KA,LA,MA,NA,OA,PA,QA=0
110 CALL KEY :: A$ :: B$ :: C$ :: D$ :: E$ :: F$ :: G$ :: H$ :: I$ :: J$ :: K$ :: L$ :: M$ :: N$
120 CALL GCHAR :: CALL CLEAR :: CALL HCHAR :: CALL VCHAR :: CALL JOYST :: CALL CHARSET :: CALL SCREEN :: CALL COLOR :: CALL CHAR
130 CALL MOTION :: CALL PATTERN :: CALL LOCATE :: CALL MAGNIFY :: CALL SPRITE :: CALL COINC :: CALL POSITION :: CALL SOUND :: CALL DELSPRITE
140 !@P-
150 CALL CHARSET :: CALL CLEAR :: CALL SCREEN(2) :: FOR A=3 TO 7 :: CALL COLOR(A,16,2) :: NEXT A :: A$="FFFFFFFFFFFFFFFF" :: CALL CHAR(44,A$) :: B$="0103070F1F3F7FFF" :: C$="80C0E0F0F8FCFEFF" :: D$="0"
160 CALL CHAR(74,"0041221408142241",68,"0041221408080808") :: DISPLAY AT(7,1):"** BOJ-BOD...BD TOM MORAN **"
170 E$="03070F0F0F0F0F07030301010101010180C0E0A0F0F8FCFCECE0808080F000F8" :: F$="010307060F1F3F3F37030101010F011FC0E0F0F0F0F0F0E0C0C0808080808080"
180 G$="070F1F3F7FFCF8080808080808080808E0F0F8FCFE3F1F101010101010101010" :: CALL CHAR(108,"0001010307FF7F3F1F0F1F1F3E3C706080C0C0E0E0FFFEFCF0F0F8F87C1C0E06")
190 B=.09 :: CALL CHAR(132,F$,140,E$,120,G$) :: CALL MAGNIFY(3) :: CALL SPRITE(#1,132,5,8,102,4,0)
200 H$="00000103070F0F0F0F070300000000000000C0E0F0F8F8F8F8F0E00" :: I$="0404020101010101012131190D070301202040808080808080848C98B0E0C080"
210 J$="03070F01012161FFFF61210101070301C0C0E080808486FFFF86848080E0C080" :: K$="0000000103070F01030307070E0C080040C080808080E0C0C0800"
220 CALL POSITION(#1,C,D) :: IF C<12 THEN 220 ELSE CALL SPRITE(#2,120,16,C-10,D,4,0) :: CALL SOUND(100,-7,0) :: CALL SOUND(1,40000,30) :: CALL A
230 L$="000F1F373F1B031E0600000003071D19000830F0E060607878E0E0E0E0F0D884" :: M$="00000020A0A1A1BFFFFF0100000000000000C0E0F0FCFEF7FFFFFE7C00000000"
240 N$="FF7F3F1F0F070301" :: E=10 :: F=7 :: D=15 :: G=3 :: CALL CHAR(115,N$,137,D$,128,C$,136,C$,113,A$,114,D$,112,C$)
250 RANDOMIZE :: CALL CHAR(124,H$,116,I$,36,M$,100,L$,92,J$,88,K$) :: FOR A=92 TO 124 STEP 8 ::  :: H=H+1 :: CALL SPRITE(#2+H,A,INT(RND*13)+3,2,H*40,INT(RND*10)+4,0)
260 CALL SOUND(-200,2*A,9,-6,0) :: NEXT A :: CALL CLEAR :: CALL SCREEN(2) :: I=124 :: DISPLAY AT(3,22):"SCORE" :: DISPLAY AT(2,8):"B O J   B O D" :: DISPLAY AT(24,1):"HIGH SCORE:"
270 FOR A=3 TO 7 :: CALL COLOR(A,16,2) :: NEXT A :: FOR A=2 TO 4 STEP 2 :: CALL HCHAR(8,A,140) :: CALL HCHAR(8,A+1,142) :: CALL HCHAR(9,A,141) :: CALL HCHAR(9,A+1,143) :: NEXT A
280 CALL HCHAR(15,5,128) :: CALL HCHAR(15,6,113,2) :: CALL HCHAR(15,8,112) :: CALL VCHAR(13,5,114,2) :: CALL VCHAR(13,8,114,2)
290 CALL HCHAR(12,6,113,2) :: CALL HCHAR(12,8,136) :: CALL HCHAR(12,5,115) :: CALL HCHAR(13,6,44,2) :: CALL HCHAR(14,6,44,2)
300 J=4 :: K=6 :: FOR H=1 TO 21 STEP 4 :: FOR A=19 TO J STEP-3 :: CALL HCHAR(A,K,104,2) :: CALL HCHAR(A+1,K,104,2) :: CALL HCHAR(A,K+2,136)
310 CALL HCHAR(A+2,K+2,112) :: CALL HCHAR(A+2,K,128) :: CALL HCHAR(A+2,K+1,113) :: CALL HCHAR(A+1,K+2,114) :: K=K+2 :: NEXT A :: J=J+3 :: K=H+9 :: NEXT H
320 CALL DELSPRITE(ALL) :: L=8 :: M=9 :: CALL A
330 CALL COLOR(2,9,9,10,D,D,11,E,F,12,G,G,13,1,E,14,F,1)
340 N,C=21 :: O,D=121 :: P=140 :: CALL SPRITE(#1,140,6,C,D) :: CALL SOUND(50,500,3) :: IF Q=6 OR Q=12 THEN CALL A
350 IF Q>5 AND Q<12 THEN 590 ELSE IF Q>11 THEN 720
360 CALL JOYST(1,K,R) :: IF K THEN P=136+(K*2)/2 :: CALL PATTERN(#1,P)
370 CALL COINC(ALL ,S) :: IF S=-1 THEN 880
380 IF R=0 THEN 360 ELSE IF R=-4 THEN C=C+24 ELSE C=C-24
390 IF P=132 THEN D=D-16 ELSE D=D+16
400 CALL SOUND(-50,800,5,400,1) :: IF C<1 THEN C=1
410 CALL LOCATE(#1,C,D) :: CALL GCHAR((C+7)/8,(D+7)/8,T) :: IF T=32 THEN 540 ELSE IF T=120 THEN 360 ELSE IF T=44 THEN 1080
420 CALL HCHAR((C+7)/8,(D+7)/8,120,2) :: CALL HCHAR((C+7)/8+1,(D+7)/8,120,2) :: U=U+1 :: IF U=21 THEN 970
430 CALL COINC(ALL ,S) :: IF S=-1 THEN 880
440 IF U=3 THEN CALL SPRITE(#2,I,7,1,91,M,0) :: V=2
450 IF U=6 THEN CALL SPRITE(#3,I,13,1,137,M,0) :: V=3
460 IF U=9 THEN CALL SPRITE(#4,I,6,1,57,M,0) :: V=4
470 IF U=15 THEN CALL MOTION(#3,M+5,0)
480 IF U=12 THEN CALL SPRITE(#5,I,14,1,177,M+2,0) :: V=5
490 IF U=11 AND W>2 THEN CALL SPRITE(#8,I,8,1,75,M,0)
500 IF U=14 AND W>3 THEN CALL SPRITE(#9,I,2,1,153,M,0)
510 IF U=10 AND W>2 THEN CALL SPRITE(#7,I,11,1,109,M,0)
520 IF U=16 AND W>1 THEN CALL SPRITE(#6,I,16,1,200,M+5,0)
530 GOTO 360
540 REM
550 IF X=3 AND Y>0 THEN Y=Y-1
560 X=X+1 :: CALL MOTION(#1,7,0) :: IF X>3 THEN X=3
570 CALL SOUND(-100,1100-Z*2,4) :: CALL POSITION(#1,Z,AA) :: IF Z>10 AND BA=0 THEN CALL SOUND(100,-7,0) :: CALL SPRITE(#15,120,16,Z-9,AA,7,0) :: BA=1
580 IF Z>185 THEN 930 ELSE 570
590 REM
600 CALL JOYST(1,K,R) :: IF K THEN P=136+(K*2)/2 :: CALL PATTERN(#1,P)
610 CALL COINC(ALL ,CA) :: IF CA=-1 THEN 620 ELSE 640
620 FOR A=2 TO 3 :: CALL COINC(#1,#A,10,S) :: IF S=-1 THEN 880
630 NEXT A
640 IF R=0 THEN 600 ELSE IF R=-4 THEN C=C+24 ELSE C=C-24
650 IF P=132 THEN D=D-16 ELSE D=D+16
660 CALL SOUND(-50,800,5,400,1) :: IF C<1 THEN C=1
670 CALL LOCATE(#1,C,D) :: CALL GCHAR((C+7)/8,(D+7)/8,T) :: IF T=32 THEN 540 ELSE IF T=120 THEN 600 ELSE IF T=44 THEN 1080
680 CALL HCHAR((C+7)/8,(D+7)/8,120,2) :: CALL HCHAR((C+7)/8+1,(D+7)/8,120,2) :: U=U+1 :: IF U=21 THEN 970
690 IF U=3 THEN CALL SPRITE(#2,I,7,1,D,M,0,#3,I,11,1,D,M+5,0) :: V=3
700 IF U>3 THEN CALL POSITION(#2,DA,EA,#3,FA,GA) :: CALL LOCATE(#2,DA,D,#3,FA,D)
710 GOTO 600
720 CALL JOYST(1,K,R) :: IF K THEN P=136+(K*2)/2 :: CALL PATTERN(#1,P) :: CALL COINC(ALL ,CA) :: IF CA=-1 THEN 880 ELSE 740
730 CALL COINC(ALL ,CA) :: IF CA=-1 THEN 880 ELSE 740
740 IF R=0 THEN 720 ELSE IF R=-4 THEN C=C+24 ELSE C=C-24
750 IF P=132 THEN D=D-16 ELSE D=D+16
760 CALL SOUND(-35,400,1,800,1) :: IF C<1 THEN C=1
770 CALL LOCATE(#1,C,D) :: CALL GCHAR((C+7)/8,(D+7)/8,T) :: IF T=32 THEN 540 ELSE IF T=120 THEN 720 ELSE IF T=44 THEN 1080
780 CALL HCHAR((C+7)/8,(D+7)/8,120,2) :: CALL HCHAR((C+7)/8+1,(D+7)/8,120,2) :: U=U+1 :: IF U=21 THEN 970
790 IF U>5 THEN CALL POSITION(#2,DA,HA) :: CALL MOTION(#2,(C-DA)*B,(D-HA)*B) :: GOTO 720
800 IF U=3 THEN CALL SPRITE(#2,I,7,1,D,M,0) :: GOTO 720 ELSE 720
810 IA=U*100 :: JA=JA+IA :: KA=KA+IA :: DISPLAY AT(4,21):JA :: IF KA>9999 THEN KA=KA-10000 :: Y=Y+1 :: GOTO 340
820 IF JA>LA THEN LA=JA :: DISPLAY AT(24,13):LA
830 CALL DELSPRITE(ALL) :: DISPLAY AT(23,1):"PRESS FIRE BUTTON TO PLAD"
840 CALL KEY(1,MA,NA) :: IF MA=18 THEN 850 ELSE 840
850 CALL HCHAR(23,1,32,32) :: FOR A=2 TO 4 STEP 2 :: CALL HCHAR(8,A,140) :: CALL HCHAR(8,A+1,142) :: CALL HCHAR(9,A,141) :: CALL HCHAR(9,A+1,143) :: NEXT A
860 Q=0 :: M=9 :: JA=0 :: U=0 :: I=124 :: W=0 :: OA=0 :: X=0 :: E=10 :: F=7 :: D=15 :: G=3 :: Y=0 :: KA=0 :: DISPLAY AT(4,21):JA
870 J=4 :: K=6 :: FOR H=1 TO 21 STEP 4 :: FOR A=19 TO J STEP-3 :: CALL HCHAR(A,K,104,2) :: CALL HCHAR(A+1,K,104,2) :: K=K+2 :: NEXT A :: J=J+3 :: K=H+9 :: NEXT H :: CALL A :: B=.09 :: GOTO 330
880 REM
890 IF X=3 AND Y>0 THEN Y=Y-1
900 X=X+1 :: CALL SOUND(200,-2,0) :: CALL SOUND(200,20000,30) :: IF X>3 THEN X=3
910 FOR A=2 TO V :: CALL MOTION(#A,0,0) :: NEXT A :: CALL PATTERN(#1,36) :: FOR A=1 TO 10 :: CALL SOUND(-75,410-(A*30),5) :: NEXT A :: CALL SOUND(1000,110,5)
920 FOR A=2 TO V :: CALL MOTION(#A,M,0) :: NEXT A
930 BA=0 :: CALL SOUND(50,1000,3) :: CALL DELSPRITE(#1,#15) :: CALL HCHAR(8,2,32,X*2) :: CALL HCHAR(9,2,32,X*2) :: IF X=3 AND Y=0 THEN 810
940 IF X=3 AND Y=1 THEN CALL SOUND(-100,4319,0) :: CALL HCHAR(11,2,32,2) :: CALL HCHAR(12,2,32,2)
950 IF Q>5 AND Q<12 THEN CALL MOTION(#3,M+5,0)
960 GOTO 340
970 CALL SOUND(-100,150,2,300,2,600,2,-1,2) :: CALL SOUND(750,200,2,400,2,800,2,-3,2) :: IA=U*100 :: JA=JA+IA :: KA=KA+IA :: DISPLAY AT(4,21):JA
980 IF KA>9999 THEN KA=KA-10000 :: Y=Y+1 :: CALL HCHAR(11,2,140) :: CALL HCHAR(11,3,142) :: CALL HCHAR(12,2,141) :: CALL HCHAR(12,3,143)ELSE 1000
990 CALL SOUND(100,330,2) :: CALL SOUND(100,660,2) :: CALL SOUND(100,1500,0)
1000 Q=Q+1 :: W=W+1 :: OA=OA+1 :: IF OA=1 OR Q=6 THEN D=15 :: F=6 :: E=8 :: G=11 :: U=0 :: I=116 :: M=11
1010 IF OA=2 THEN D=15 :: F=13 :: E=3 :: G=4 :: U=0 :: I=108 :: M=13
1020 IF OA=3 THEN D=15 :: F=11 :: E=12 :: G=10 :: U=0 :: I=100 :: M=14
1030 IF OA=4 THEN D=16 :: F=15 :: E=15 :: G=14 :: U=0 :: I=92 :: M=16
1040 IF OA=5 THEN D=15 :: F=7 :: E=11 :: G=8 :: U=0 :: I=88 :: M=18
1050 IF OA>5 THEN OA=0 :: M=9 :: U=0 :: I=124 :: E=10 :: F=7 :: D=15 :: G=3
1060 FOR A=1 TO 10 :: CALL DELSPRITE(#A) :: NEXT A :: J=4 :: K=6 :: FOR H=1 TO 21 STEP 4 :: FOR A=19 TO J STEP-3 :: CALL HCHAR(A,K,104,2) :: CALL HCHAR(A+1,K,104,2) :: K=K+2 :: NEXT A :: J=J+3
1070 K=H+9 :: NEXT H :: IF Q>11 AND B>.55 THEN B=.55 :: V=2 :: GOTO 330 ELSE IF Q>11 THEN B=B+.05 :: V=2 :: GOTO 330 ELSE 330
1080 REM
1090 PA=INT(16*RND)+2 :: IF PA>16 THEN PA=2
1100 CALL COLOR(2,PA,PA) :: IF PA=5 THEN C=21 :: D=121 :: GOTO 1110 ELSE IF PA=6 THEN C=45 :: D=137 :: GOTO 1110 ELSE IF PA=16 THEN C=45 :: D=105 :: GOTO 1110 ELSE 1150
1110 CALL POSITION(#1,HA,QA) :: CALL SPRITE(#18,108,PA,HA+7,QA)
1120 CALL MOTION(#1,-4,4,#18,-4,4) :: FOR A=1 TO 10 :: CALL SOUND(-950,535+5*A,30,535+5*A,30,535+5*A,30,-4,0) :: CALL COLOR(#1,16)
1130 FOR G=1 TO 10 :: NEXT G :: CALL COLOR(#1,7) :: FOR G=1 TO 10 :: NEXT G :: CALL COLOR(#1,3) :: FOR G=1 TO 10 :: NEXT G :: NEXT A :: CALL MOTION(#1,0,0,#18,0,0)
1140 CALL SOUND(100,888,0) :: CALL LOCATE(#1,C,D) :: CALL SOUND(250,500,0) :: CALL COLOR(#1,6) :: CALL DELSPRITE(#18) :: GOTO 1200
1150 IF PA=4 OR PA=8 OR PA=9 OR PA=12 OR PA=13 THEN JA=JA+255 :: KA=KA+255
1160 IF PA=3 OR PA=7 OR PA=10 OR PA=11 OR PA=15 THEN JA=JA+100 :: KA=KA+100
1170 IF PA=14 THEN JA=JA+500 :: KA=KA+500 :: Y=Y+1 :: CALL HCHAR(11,2,140) :: CALL HCHAR(11,3,142) :: CALL HCHAR(12,2,141) :: CALL HCHAR(12,3,143)
1180 IF PA=2 THEN 550
1190 CALL SOUND(100,330,2) :: CALL SOUND(100,660,2) :: DISPLAY AT(4,22):JA :: CALL SOUND(30,1500,0)
1200 IF Q>5 AND Q<11 THEN 600 ELSE IF Q>11 THEN 720 ELSE 360
1210 IF X=3 AND Y>0 THEN Y=Y-1
1220 X=X+1 :: IF X>3 THEN X=3
1230 GOTO 930
1240 !@P+
1250 SUB A :: CALL SOUND(350,349,2) :: FOR A=1 TO 40 :: NEXT A :: CALL SOUND(275,349,2) :: FOR A=1 TO 35 :: NEXT A :: CALL SOUND(275,349,2)
1260 FOR A=1 TO 35 :: NEXT A :: CALL SOUND(400,262,2) :: CALL SOUND(400,294,2) :: FOR A=1 TO 20 :: NEXT A :: CALL SOUND(-1000,233,2) :: SUBEND
